ASP .NET Core Model
Model Binding
前面講完了MVC的生命週期
接下來就要逐一的去討論每個階段的部分
今天討論一下MVC的M - Model
MVC是一個設計模式
通常會follow這樣的方向去做設計
- Model要肥
跟資料真正有關係的都在這裡- View要笨
重購需要建立在好維護上,看下去可以清楚知道在幹嘛
而不是硬要使用架構- Controller要輕
專注在呈現面的邏輯不要加入太多的其他的邏輯
MVC裡面的M(Model)
其實就是一個class
主要的職責為:
如下圖就是我們建立的一個Movie的Model
其中Model還可以在裡面增加一些驗證設定或是限制(DataAnnotations)
後續會再討論到這個部分
主要是http request 後和各個action溝通的橋樑
透過這個機制,可以提供controller 拿到這些外部進來的參數
簡單說就是抓取http request去解析成我們要的參數到controller
主要分成三種
Form values:
透過表單使用HTTP Post 傳進來的方式
當網頁上的一個表單送出後
會觸發一個Http Post的請求
而在controller裡面會透過傳進來的Movie去抓到request進來的資料
Route values:
在一開始Statup.cs已經有先註冊好Route的Middleware
因此可以透過Router的設定抓到request進來的值,通常會是一個id
到controller之後再去取出整筆的資料做回傳
Query string:
當get 傳進來將參數帶到後面所使用的方式,直接接在URL後面
通常使用時要記得加密,不然會有資安的問題
https://localhost:5001/Movie?CustomerID=100
問號後面的參數名稱和controller的參數要相同
參考資料
https://dotnettutorials.net/lesson/model-binding-asp-net-core/